/**
 *
 */
package com.naiterui.ehp.bs.recommend.vo;

import java.io.Serializable;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Data;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@Data
@ApiModel(value = "MedicationBoxVO", description = "药品列表VO")
@JsonIgnoreProperties(ignoreUnknown = true)
public class MedicationBoxVO extends InventoryInfoVo implements Serializable {

    private static final long serialVersionUID = -8974893948654716485L;

    /** 商品ID */
    @ApiModelProperty(value = "商品ID")
    private Long id;
    /** 商品名 */
    @ApiModelProperty(value = "商品名")
    private String name;
    /** 通用名 */
    @ApiModelProperty(value = "通用名")
    private String commonName;
    /**
     * 推荐使用药品名称
     */
    @ApiModelProperty(value = "推荐使用药品名称——【医生端V3.4.0-by gongbaoqiang】")
    private String recomName;
    /** 生产厂商 */
    @ApiModelProperty(value = "生产厂商")
    private String manufacturer;
    /** 销售中 */
    @ApiModelProperty(value = "是否销售中(false,true)")
    private boolean sale;
    /** 规格 */
    @ApiModelProperty(value = "规格")
    private String spec;
    /** 用法用量 */
    @ApiModelProperty(value = "用法用量")
    private String usage;
    /** 商品图 */
    @ApiModelProperty(value = "商品图片")
    private String image;
    /** 销售价 */
    @ApiModelProperty(value = "销售价")
    private String salePrice;
    /** 市场价 */
    @ApiModelProperty(value = "市场价")
    private String marketPrice;
    /** 是否处方药 */
    @ApiModelProperty(value = "是否处方药(false,true)")
    private boolean isPrescribed;
    /** 添加人数 */
    @ApiModelProperty(value = "添加人数")
    private Integer addNum;
    /** 是否已添加 */
    @ApiModelProperty(value = "是否已添加(false,true)")
    private boolean added;
    /** sku列表 */
    private List<SkuVO> skus;
    /**
     * 商品skuId：<code>skuId</code>
     */
    @ApiModelProperty(value = "商品skuId")
    private Long skuId;
    /**
     * 推荐购药预计获取积分：<code>recomPoint</code>
     */
    @ApiModelProperty(value = "推药预计获取积分")
    private String recomPoint;
    /**
     * 医生提成 OR 商品指数 ：<code>drCommission</code>
     */
    @ApiModelProperty(value = "医生提出OR商品指数")
    private String drCommission;
    /**
     * 购买数量：<code>quantity</code>
     */
    @ApiModelProperty(value = "购买数量")
    private Integer quantity;
    /**
     * 数量单位：<code>quantityUnit</code>
     */
    @ApiModelProperty(value = "数量单位")
    private String quantityUnit;
    /**
     * 0表示非药品，1表示药品
     */
    @ApiModelProperty(value = "药品类型(0表示非药品,1表示药品)")
    @JsonProperty(value = "drug_type")
    private Integer drugType;
    /**
     * 是否为推荐商品 1.是 0.否
     */
    @ApiModelProperty(value = "是否为推荐商品(1.是 ,0.否)")
    private Integer isRecommend;
    /**
     * 推荐药品对应的目标药品id
     */
    @JsonIgnore
    @ApiModelProperty(value = "推荐药品对应的目标药品id")
    private Long replacePid;
    /**
     * 正大天晴标识：<code>isZhengda</code>
     */
    @ApiModelProperty(value = "正大天晴标识(true,false)")
    private boolean isZhengda;

    @ApiModelProperty(value = "控制指数显示方式：0不显示 、1小七指数、2市场积分")
    private Integer showCommission;

    @ApiModelProperty(value = "市场积分")
    private String marketPoint;

    @ApiModelProperty(value = "是否门诊医生(true:是、false:不是),决定显示调价按钮")
    private boolean modifyFlag;

    @ApiModelProperty(value = "是否已经调价(true:已调、false未调)")
    private boolean modified;

    /**
     * 是否推荐：1.推荐药品
     */
    public static final Integer IS_RECOMMEND = 1;
    /**
     * 是否推荐：0.非推荐药品
     */
    public static final Integer IS_NOT_RECOMMEND = 0;

    public MedicationBoxVO() {
        super();
    }

    public MedicationBoxVO(Long id, String name, String commonName, String manufacturer, boolean sale, String spec, String usage, String image,
                           String salePrice, String marketPrice, boolean isPrescribed, String drCommission, Integer drugType) {
        super();
        this.id = id;
        this.name = name;
        this.commonName = commonName;
        this.manufacturer = manufacturer;
        this.sale = sale;
        this.spec = spec;
        this.usage = usage;
        this.image = image;
        this.salePrice = salePrice;
        this.marketPrice = marketPrice;
        this.addNum = 0;
        this.added = true;
        this.drCommission = drCommission;
        this.drugType = drugType;
        this.isZhengda = false;
    }

    public MedicationBoxVO(Long id, String name, String commonName, String manufacturer, boolean sale, String spec, String usage, String image,
                           String salePrice, String marketPrice, boolean isPrescribed, String drCommission, Integer drugType, boolean isZhengda) {
        super();
        this.id = id;
        this.name = name;
        this.commonName = commonName;
        this.manufacturer = manufacturer;
        this.sale = sale;
        this.spec = spec;
        this.usage = usage;
        this.image = image;
        this.salePrice = salePrice;
        this.marketPrice = marketPrice;
        this.addNum = 0;
        this.added = true;
        this.drCommission = drCommission;
        this.drugType = drugType;
        this.isZhengda = isZhengda;
    }

}
